<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>SSDPNET: XMatrix3dExtension.h 源文件</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">SSDPNET<span id="projectnumber">&#160;1.0</span>
   </div>
   <div id="projectbrief">.NET SDK</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.6 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>首页</span></a></li>
      <li><a href="namespaces.html"><span>包</span></a></li>
      <li><a href="annotated.html"><span>类</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_6e8f4508e1d360b9a007f40edb8dae96.html">_SSDP</a></li><li class="navelem"><a class="el" href="dir_b1efc71fc5c0b1546dfaf7dca60b6e03.html">最新</a></li><li class="navelem"><a class="el" href="dir_3da81ba1892e410416fdba26c4859275.html">Repo</a></li><li class="navelem"><a class="el" href="dir_36a1a74683486d663aaa949ba78ca961.html">bim-ssd-core-plugin</a></li><li class="navelem"><a class="el" href="dir_c085970a38f500e61b887bb609fc24fd.html">SSDP.Net</a></li><li class="navelem"><a class="el" href="dir_3d9778eef114628a3d8facdda36c5043.html">SSDPNet</a></li><li class="navelem"><a class="el" href="dir_bd54ebea303681ad88c98d142df46247.html">PublicAPI</a></li><li class="navelem"><a class="el" href="dir_4cdd252a4c00d0fc823c862a50c8bed7.html">Geom</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle"><div class="title">XMatrix3dExtension.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="preprocessor">#pragma region Include_Platform</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="preprocessor">#include &lt;ATECCore\ATECCoreAPI.h&gt;</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span> </div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="keyword">using namespace </span>System;</div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="keyword">using namespace </span>System::Runtime::CompilerServices;</div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="keyword">using namespace </span>System::Runtime::InteropServices;</div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span>USING_NAMESPACE_ATEC</div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span>USING_NAMESPACEATEC_ATDATACORE</div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno">   10</span>USING_NAMESPACE_ATEC_RATCORE</div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span> </div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span> </div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span><span class="preprocessor">#pragma endregion Include_Platform</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span> </div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespace_s_s_d_p_n_e_t.html">SSDPNET</a></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span>{</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span>    <span class="keyword">namespace </span>Geom</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span>    {</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span>        [Extension()]</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="class_s_s_d_p_n_e_t_1_1_geom_1_1_x_matrix3d_extension.html">   23</a></span>        <span class="keyword">public ref class</span> <a class="code hl_class" href="class_s_s_d_p_n_e_t_1_1_geom_1_1_x_matrix3d_extension.html">XMatrix3dExtension</a></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span>        {</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span>        <span class="keyword">public</span>:</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span> </div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>            <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_s_s_d_p_n_e_t_1_1_geom_1_1_x_matrix3d_extension.html#a779f84a1843a2a026b63a13461027709">NormalizeColumnsOf</a></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span>            (</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span>                ATEC::GeometryNET::XMatrix3d     oriMatrix,</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span>                ATEC::GeometryNET::XMatrix3d     inMatrix,</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span>                ATEC::GeometryNET::XVector3d     scaleVector</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span>            );</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span> </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span>        <span class="keyword">public</span>:</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span>            <span class="keyword">static</span> ATEC::GeometryNET::XMatrix3d <a class="code hl_function" href="class_s_s_d_p_n_e_t_1_1_geom_1_1_x_matrix3d_extension.html#afe173e2d838c8cdee9616cf7967aaeb1">RotationFromVectorToVector</a></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span>            (</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span>                ATEC::GeometryNET::XVector3d startVector,</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span>                ATEC::GeometryNET::XVector3d endVector</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span>            );</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span>            </div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span>        <span class="keyword">public</span>:</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno">   62</span>            <span class="keyword">static</span> ATEC::GeometryNET::XMatrix3d <a class="code hl_function" href="class_s_s_d_p_n_e_t_1_1_geom_1_1_x_matrix3d_extension.html#a1d89f55064d9289f4211f94116edcbef">FromRotate90</a>(ATEC::GeometryNET::XVector3d axis);</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno">   63</span>            </div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno">   72</span>            <span class="keyword">static</span> ATEC::GeometryNET::XMatrix3d <a class="code hl_function" href="class_s_s_d_p_n_e_t_1_1_geom_1_1_x_matrix3d_extension.html#a1f01bf203ea1c9d7a9ae3f6d3af843bc">From1Vector</a></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno">   73</span>            (</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno">   74</span>                ATEC::GeometryNET::XVector3d        dir,</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno">   75</span>                <span class="keywordtype">int</span>             axis,</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno">   76</span>                <span class="keywordtype">bool</span>            normalize</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno">   77</span>            );</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno">   78</span>            </div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno">   79</span>        <span class="keyword">public</span>:</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno">   87</span>            <span class="keyword">static</span> ATEC::GeometryNET::XMatrix3d <a class="code hl_function" href="class_s_s_d_p_n_e_t_1_1_geom_1_1_x_matrix3d_extension.html#adaceedd32b6169e21e8ef5a58443e577">From2Vectors</a></div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno">   88</span>            (</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span>                ATEC::GeometryNET::XVector3d        xVector,</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno">   90</span>                ATEC::GeometryNET::XVector3d        yVector</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno">   91</span>            );</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno">   92</span> </div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno">   93</span>        <span class="keyword">public</span>:</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno">  100</span>            <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_s_s_d_p_n_e_t_1_1_geom_1_1_x_matrix3d_extension.html#a2dada1b7fb8d638e98df86aced5dc477">Multiply</a>(</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno">  101</span>                ATEC::GeometryNET::XMatrix3d     oriMatrix,</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno">  102</span>                out ATEC::GeometryNET::XPoint3d  point);</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno">  103</span> </div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno">  104</span>        <span class="keyword">public</span>:</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno">  112</span>            <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_s_s_d_p_n_e_t_1_1_geom_1_1_x_matrix3d_extension.html#a2dada1b7fb8d638e98df86aced5dc477">Multiply</a></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno">  113</span>            (</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno">  114</span>                ATEC::GeometryNET::XMatrix3d     oriMatrix,</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno">  115</span>                out ATEC::GeometryNET::XPoint3d  result,</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno">  116</span>                ATEC::GeometryNET::XPoint3d      point</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno">  117</span>            );</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno">  118</span> </div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno">  119</span> </div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno">  120</span>        <span class="keyword">public</span>:</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno">  128</span>            <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_s_s_d_p_n_e_t_1_1_geom_1_1_x_matrix3d_extension.html#a9d64bf93a1566cb3d20562ff9f0537d1">MultiplyTranspose</a></div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno">  129</span>            (</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno">  130</span>                ATEC::GeometryNET::XMatrix3d     oriMatrix,</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno">  131</span>                out ATEC::GeometryNET::XPoint3d  result,</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno">  132</span>                ATEC::GeometryNET::XPoint3d      point</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno">  133</span>            ) ;</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno">  134</span> </div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno">  142</span>            <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_s_s_d_p_n_e_t_1_1_geom_1_1_x_matrix3d_extension.html#a2dada1b7fb8d638e98df86aced5dc477">Multiply</a></div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno">  143</span>            (</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno">  144</span>                ATEC::GeometryNET::XMatrix3d     oriMatrix,</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno">  145</span>                out  System::Collections::Generic::List&lt;ATEC::GeometryNET::XPoint3d&gt;        outXYZ,</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno">  146</span>                System::Collections::Generic::List&lt;ATEC::GeometryNET::XPoint3d&gt;     inXYZ</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno">  147</span>            );</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno">  148</span>        };</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno">  149</span>    }</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno">  150</span>}</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno">  151</span> </div>
<div class="ttc" id="aclass_s_s_d_p_n_e_t_1_1_geom_1_1_x_matrix3d_extension_html"><div class="ttname"><a href="class_s_s_d_p_n_e_t_1_1_geom_1_1_x_matrix3d_extension.html">SSDPNET::Geom::XMatrix3dExtension</a></div><div class="ttdoc">提供XMatrix3d常见的序列化，矩阵相乘， 转置等操作</div><div class="ttdef"><b>Definition:</b> XMatrix3dExtension.h:24</div></div>
<div class="ttc" id="aclass_s_s_d_p_n_e_t_1_1_geom_1_1_x_matrix3d_extension_html_a1d89f55064d9289f4211f94116edcbef"><div class="ttname"><a href="class_s_s_d_p_n_e_t_1_1_geom_1_1_x_matrix3d_extension.html#a1d89f55064d9289f4211f94116edcbef">SSDPNET::Geom::XMatrix3dExtension::FromRotate90</a></div><div class="ttdeci">static ATEC::GeometryNET::XMatrix3d FromRotate90(ATEC::GeometryNET::XVector3d axis)</div><div class="ttdoc">Desc： 创建函数 创建一个将向量旋转90度的矩阵</div><div class="ttdef"><b>Definition:</b> XMatrix3dExtension.cpp:21</div></div>
<div class="ttc" id="aclass_s_s_d_p_n_e_t_1_1_geom_1_1_x_matrix3d_extension_html_a1f01bf203ea1c9d7a9ae3f6d3af843bc"><div class="ttname"><a href="class_s_s_d_p_n_e_t_1_1_geom_1_1_x_matrix3d_extension.html#a1f01bf203ea1c9d7a9ae3f6d3af843bc">SSDPNET::Geom::XMatrix3dExtension::From1Vector</a></div><div class="ttdeci">static ATEC::GeometryNET::XMatrix3d From1Vector(ATEC::GeometryNET::XVector3d dir, int axis, bool normalize)</div><div class="ttdoc">Desc： 初始化数据 将矩阵初始化为将指定轴(axis = 0,1 或 2)旋转到给定向量方向</div><div class="ttdef"><b>Definition:</b> XMatrix3dExtension.cpp:30</div></div>
<div class="ttc" id="aclass_s_s_d_p_n_e_t_1_1_geom_1_1_x_matrix3d_extension_html_a2dada1b7fb8d638e98df86aced5dc477"><div class="ttname"><a href="class_s_s_d_p_n_e_t_1_1_geom_1_1_x_matrix3d_extension.html#a2dada1b7fb8d638e98df86aced5dc477">SSDPNET::Geom::XMatrix3dExtension::Multiply</a></div><div class="ttdeci">static void Multiply(ATEC::GeometryNET::XMatrix3d oriMatrix, out ATEC::GeometryNET::XPoint3d point)</div><div class="ttdoc">Desc : 相乘 将给定点原地修改为其与矩阵的乘积</div><div class="ttdef"><b>Definition:</b> XMatrix3dExtension.cpp:49</div></div>
<div class="ttc" id="aclass_s_s_d_p_n_e_t_1_1_geom_1_1_x_matrix3d_extension_html_a779f84a1843a2a026b63a13461027709"><div class="ttname"><a href="class_s_s_d_p_n_e_t_1_1_geom_1_1_x_matrix3d_extension.html#a779f84a1843a2a026b63a13461027709">SSDPNET::Geom::XMatrix3dExtension::NormalizeColumnsOf</a></div><div class="ttdeci">static void NormalizeColumnsOf(ATEC::GeometryNET::XMatrix3d oriMatrix, ATEC::GeometryNET::XMatrix3d inMatrix, ATEC::GeometryNET::XVector3d scaleVector)</div><div class="ttdoc">Desc： 按列单位化 计算输入矩阵按列单位化的结果，同时返回原始行向量的模</div><div class="ttdef"><b>Definition:</b> XMatrix3dExtension.cpp:3</div></div>
<div class="ttc" id="aclass_s_s_d_p_n_e_t_1_1_geom_1_1_x_matrix3d_extension_html_a9d64bf93a1566cb3d20562ff9f0537d1"><div class="ttname"><a href="class_s_s_d_p_n_e_t_1_1_geom_1_1_x_matrix3d_extension.html#a9d64bf93a1566cb3d20562ff9f0537d1">SSDPNET::Geom::XMatrix3dExtension::MultiplyTranspose</a></div><div class="ttdeci">static void MultiplyTranspose(ATEC::GeometryNET::XMatrix3d oriMatrix, out ATEC::GeometryNET::XPoint3d result, ATEC::GeometryNET::XPoint3d point)</div><div class="ttdoc">Desc : 转置相乘 返回矩阵转置后与给定点的乘积</div><div class="ttdef"><b>Definition:</b> XMatrix3dExtension.cpp:56</div></div>
<div class="ttc" id="aclass_s_s_d_p_n_e_t_1_1_geom_1_1_x_matrix3d_extension_html_adaceedd32b6169e21e8ef5a58443e577"><div class="ttname"><a href="class_s_s_d_p_n_e_t_1_1_geom_1_1_x_matrix3d_extension.html#adaceedd32b6169e21e8ef5a58443e577">SSDPNET::Geom::XMatrix3dExtension::From2Vectors</a></div><div class="ttdeci">static ATEC::GeometryNET::XMatrix3d From2Vectors(ATEC::GeometryNET::XVector3d xVector, ATEC::GeometryNET::XVector3d yVector)</div><div class="ttdoc">Desc： 创建函数 创建一个前两列为给定向量，第三列为它们的叉乘积的矩阵</div><div class="ttdef"><b>Definition:</b> XMatrix3dExtension.cpp:39</div></div>
<div class="ttc" id="aclass_s_s_d_p_n_e_t_1_1_geom_1_1_x_matrix3d_extension_html_afe173e2d838c8cdee9616cf7967aaeb1"><div class="ttname"><a href="class_s_s_d_p_n_e_t_1_1_geom_1_1_x_matrix3d_extension.html#afe173e2d838c8cdee9616cf7967aaeb1">SSDPNET::Geom::XMatrix3dExtension::RotationFromVectorToVector</a></div><div class="ttdeci">static ATEC::GeometryNET::XMatrix3d RotationFromVectorToVector(ATEC::GeometryNET::XVector3d startVector, ATEC::GeometryNET::XVector3d endVector)</div><div class="ttdoc">Desc： 将矩阵初始化为将起始向量以最小的角度旋转至终止向量的方向</div><div class="ttdef"><b>Definition:</b> XMatrix3dExtension.cpp:11</div></div>
<div class="ttc" id="anamespace_s_s_d_p_n_e_t_html"><div class="ttname"><a href="namespace_s_s_d_p_n_e_t.html">SSDPNET</a></div><div class="ttdef"><b>Definition:</b> ATBtmkFuncsExtension.h:17</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
制作者&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6
</small></address>
</body>
</html>
